package com.qclix.inv;

import java.io.File;
import java.util.List;

/**
 * Description of the services available for invoices
 */
public interface InvoiceService {
    public List<Client> getClients() throws InvoiceServiceException;
    public Client addClient(Client client) throws InvoiceServiceException;
    public boolean hasAtLeastOneClient() throws InvoiceServiceException;

    void addInvoice(Invoice invoice) throws InvoiceServiceException;

    public Client getLastInvoicedClient() throws InvoiceServiceException;
    public List<Invoice> getLastInvoices() throws InvoiceServiceException;

    public byte[] getPDF(Invoice invoice) throws InvoiceServiceException;
    public void writePDF(Invoice invoice, File outputFile) throws InvoiceServiceException;
}
